<?php
namespace app\common\business;

use app\common\lib\ClassArr;
use app\common\lib\Num\Number;

// 业务逻辑层生成短信验证码
// 这里调用lib层数据，lib只需发送短信即可！
class Sms
{
    public static function sendCode(string $phoneNumber, int $len, string $type):bool
    {
        // 利用rand生成短信验证码
        $code = Number::getCode($len);
        // 将手机号和验证码传给lib层 ： 成功会返回true，失败则返回false

        $classStat = ClassArr::smsClassStat();
        $class = ClassArr::initClass($type, $classStat);
        $sms = $class::sendCode($phoneNumber, $code);
        if ($sms) {
            // 需要将短信验证码纪录到redis中，并且给出一个失效时间
            cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.code_time'));
        }
        return true;
    }
}
